// pages/list/list.js
import {createStoreBindings} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    name:"我是可点击按钮",
    imgSrc:"http://www.itheima.com/images/logo.png",
    list:['1','2','3','4','5'],
    nickName:"zhangsan"
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    //这里进行全局数据共享的初始化
    this.storeBindings = createStoreBindings(this,{
      store,
      fields:['numA','numB','sum'],
      actions:['updateNum1']
    }),
    //这里进行连接创建websocket链接
    // wx.connectSocket({
    //   url: 'ws://127.0.0.1:3000',
    //   success: function (res) {
    //     console.log('WebSocket连接成功', res);
    //   }
    // })
    wx.onSocketOpen((result) => {
      console.log("websoket连接已经打开")
      wx.sendSocketMessage({
        data: "hello,webSocket",
      })
    })
    wx.onSocketMessage((res)=>{
      console.log(`收到服务器消息：${res.data}`)
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    //这里对全局数据共享进行解绑
    this.storeBindings.destroyStoreBindings()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    console.log('已经触碰到底部啦')
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  oneTap(event){
    console.log(this.data.name)
    // 获取传送过来的数据
    console.log(event.target.dataset)
    this.setData({
      name:"你已经点击了哦！"
    })
  },
  // 输入框输入事件处理函数
  inputing(e){
    console.log(e)
  },
  routerTo(){
    wx.navigateTo({
      url: '/pages/index/index?name:"张三"&age=20',
    })
  },
  //自定义事件的触发函数，并在父组件中，获取其中的参数数据
  one(e){
    console.log(e.detail)
  },
  //获取子组件实例并输出
  getChildInstance(){
    //只能使用id或者是class选择器，其他的都不行，和vue还是比较像的，而且可以直接对子组件中的数据进行修改
    const child = this.selectComponent(".one")
    console.log(child.data)
    //调用child就相当于调用了组件实例，自然可以使用setData方法更新数据
    child.setData({
      name:"lisi",
      age:50,
    })
  },
  async requestTo(){
    //解释promise方式的解说：该用法是解构赋值，表示将该对象中取出名为data的属性，并将其赋值给变量res，必须当前的函数的异步函数，才能在函数中使用await获取promise数据
    const {data:res} =await wx.p.request({
      method:"GET",
      url:"https://www.escook.cn/api/get",
      data:{
        name:'zs',
        age:20,
      }
    })
    console.log(res)
  },
  changeNumA(e){
    const change = e.target.dataset.step
    console.log(change)
    this.updateNum1(change)
  },
})